package vip.xiaonuo.modular.manage.storeorder.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.modular.manage.storeorder.entity.BiStoreOrder;
import vip.xiaonuo.modular.manage.storeorder.param.BiStoreOrderParam;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface BiStoreOrderMapper  extends BaseMapper<BiStoreOrder> {

    BigDecimal sumTradeAmount(BiStoreOrderParam param);

    @MapKey("paid_way")
    List<Map<String,Long>> groupByPaidWay(BiStoreOrderParam param);

    /**
     * 统计同类主题“近一年”真实成交数据
     * @param param
     * @return
     */
    @MapKey("org_code")
    List<Map<String,Long>> groupByOrgCode(BiStoreOrderParam param);

    Page<BiStoreOrder> pageStoreOrderData(IPage<BiStoreOrder> page, @Param("biStoreOrderParam") BiStoreOrderParam biStoreOrderParam);
    List<BiStoreOrder> groupTradeAmountByStore(BiStoreOrderParam param);
    List<BiStoreOrder> countStoreNumByName(BiStoreOrderParam param);
    List<BiStoreOrder> countCouponNumByStore(@Param("storeCodes") List<String> totalStoreIds,@Param("year")String year);
    BigDecimal sumStoreTradeAmountByMonth(@Param("storeCode") String storeCode, @Param("monthStart") Date monthStart);

    Page<BiStoreOrder> selectPageGroupByName(IPage page, @Param("param")HashMap<String,Object> param);

    @MapKey("store_name")
    List<Map<String,Object>> avgTradeAmountByOrgCode(String orgCode);

    @MapKey("week")
    List<Map<String,Object>>countOrderByWeek(@Param("storeCode") String storeCode);

}
